﻿namespace ImageDupFinder
{
    using System;

    /// <summary>
    /// Provides lazy loading option.
    /// </summary>
    public interface ILazyLoad
    {
        /// <summary>
        /// Callback function called when lazy loading is invoked.
        /// </summary>
        event EventHandler LazyLoadCallback;

        /// <summary>
        /// Gets a value indicating whether lazy loading can be performed.
        /// </summary>
        bool CanLazyLoad { get; }

        /// <summary>
        /// Gets or sets User data that can be used during lazy loading.
        /// </summary>
        object LazyData { get; set; }

        /// <summary>
        /// Invokes lazy loading process.
        /// </summary>
        void InvokeLazyLoad();
    }
}
